//package mode_utils.redis工具;
//
//import com.quanshi.jingdian.domain.JdElectricityStatus;
//import com.quanshi.jingdian.domain.vo.JdElectricityRecordsVo;
//import com.quanshi.jingdian.service.IJdElectricityRecordsService;
//import com.quanshi.jingdian.service.IJdElectricityStatusService;
//import lombok.extern.log4j.Log4j2;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.connection.Message;
//import org.springframework.data.redis.listener.KeyExpirationEventMessageListener;
//import org.springframework.data.redis.listener.RedisMessageListenerContainer;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//import java.util.Date;
//import java.util.Objects;
//
//
///**
// * redis key 过期监控
// */
//@Log4j2
//@Component
//public class RedisKeyExpirationListener  extends KeyExpirationEventMessageListener {
//
//    @Resource
//    public RedisUtils redisUtils;
//    @Resource
//    public IJdElectricityStatusService electricityStatusService;
//    @Resource
//    public IJdElectricityRecordsService recordsService;
//
//    public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
//        super(listenerContainer);
//    }
//
//    @Override
//    public void onMessage(Message message, byte[] pattern) {
//        //获取过期的key
//        String expireKey = message.toString();
//        String[] string = expireKey.split(":");
//        if(Objects.equals(string[0], "ExpirationMonitoring")){
//            JdElectricityRecordsVo electricity = redisUtils.getDataFromRedis(string[1]);
//            electricity.setType("Offline");
//            //修改设备属于离线状态
//            redisUtils.saveDataToRedis(electricity);
//            //设备异常通知
//            electricity.setCreateTime(new Date());
//            JdElectricityStatus electricityStatus = new JdElectricityStatus().convertToElectricityStatus(electricity);
//            electricityStatusService.insertJdElectricityStatus(electricityStatus);
//            //新增设备属于离线状态
//            recordsService.insertJdElectricityRecords(electricity);
//        }
//    }
//}
